package br.com.expositor.negocios.infra.controlador;

import java.io.Serializable;
import java.util.Collection;

import br.com.expositor.negocios.infra.entidade.IEntidade;
import br.com.expositor.repositorio.DAO.entidade.infra.IGenericDAO;
import br.com.expositor.repositorio.DAO.entidade.infra.filtro.IFiltro;

public interface IControlador<ENTIDADE extends IEntidade, ID extends Serializable, FILTRO extends IFiltro, REPOSITORIO extends IGenericDAO<ENTIDADE, ID, FILTRO>> {

	public void alterar(ENTIDADE vo);

	public ENTIDADE buscar(ID id);

	public Collection<ENTIDADE> consultar(FILTRO filtro);

	public REPOSITORIO getRepositorioDAO();

	public void inserir(ENTIDADE vo);

	public void remover(ENTIDADE entidade);

	public void validarAlteracao(ENTIDADE entidade);

	public void validarExclusao(ENTIDADE entidade);

	public void validarInclusao(ENTIDADE entidade);

}
